import datetime

import pytz


def tzware_datetime():
	"""
	Return a timezone aware datetime.

	:return: Datetime
	"""
	return datetime.datetime.now(pytz.utc)


def timedelta_months(months, compare_date=None):
	"""
	Return a new datetime with a month offset applied.

	:param months: Amount of months to offset
	:type months: int
	:param compare_date: Date to compare at
	:type compare_date: date
	:return: datetime
	"""
	if compare_date is None:
		compare_date = datetime.date.today()

	delta = months * 365 / 12
	compare_date_with_delta = compare_date + datetime.timedelta(delta)

	return compare_date_with_delta
